package com.ls.enums;
/**
 * <p>
 * 短信错误类型枚举类
 * DELIVRD 表示 短信投递成功，EXPIRED 表示 Message validity period has expired，DELETED 表示 Message has been deleted，REJECTED 表示 Message is in a rejected state，MA:0001表示全局黑名单号码，
 * MA:0002表示内容非法，MA:0003表示无法找到下级路由，MA:0004表示错误的内容长度，MA:0005表示目的号码格式错误，MA:0006表示系统拒绝，MA:0009表示未定义错误，MA:0011表示未知系统内部错误，
 * MA:0015表示余额不足，MA:0017表示签名无效，MA:0021表示号码格式错误，MA:0022表示下发次数限制，MA:0023表示客户黑名单号码，MA:0024表示内容未报备，MA:0025表示不支持该短信，
 * MA:0026表示分条发送，组包超时，MA:0027表示通道黑名单，MA:0028表示全局黑名单号段，MA:0029表示号通道黑名单号段，MA:0030表示直接产生拒绝报告，MA:0033表示地区拦截，
 * MA:0044表示号段拦截，MO:200表示不支持分条短信，MO:0254表示转发提交超时，MO:0255表示转发提交过程中，连接断开，MO:NNNN表示NNNN 为对外提交过程中，上级网关的返回值，具体含义需上级网关解释
 * </p>
 *
 * @author pengyu
 * @since 2020-05-25
 */
public enum SmsStatusEnum {
    //帮我生成枚举类和相关注释
    DELIVRD("DELIVRD", "短信投递成功"),
    EXPIRED("EXPIRED", "Message validity period has expired"),
    DELETED("DELETED", "Message has been deleted"),
    REJECTED("REJECTED", "Message is in a rejected state"),
    MA_0001("MA:0001", "全局黑名单号码"),
    MA_0002("MA:0002", "内容非法"),
    MA_0003("MA:0003", "无法找到下级路由"),
    MA_0004("MA:0004", "错误的内容长度"),
    MA_0005("MA:0005", "目的号码格式错误"),
    MA_0006("MA:0006", "系统拒绝"),
    MA_0009("MA:0009", "未定义错误"),
    MA_0011("MA:0011", "未知系统内部错误"),
    MA_0015("MA:0015", "余额不足"),
    MA_0017("MA:0017", "签名无效"),
    MA_0021("MA:0021", "号码格式错误"),
    MA_0022("MA:0022", "下发次数限制"),
    MA_0023("MA:0023", "客户黑名单号码"),
    MA_0024("MA:0024", "内容未报备"),
    MA_0025("MA:0025", "不支持该短信"),
    MA_0026("MA:0026", "分条发送"),
    MA_0027("MA:0027", "通道黑名单"),
    MA_0028("MA:0028", "全局黑名单号段"),
    MA_0029("MA:0029", "号通道黑名单号段"),
    MA_0030("MA:0030", "直接产生拒绝报告"),
    MA_0033("MA:0033", "地区拦截"),
    MA_0044("MA:0044", "号段拦截"),
    MO_200("MO:200", "不支持分条短信"),
    MO_0254("MO:0254", "转发提交超时"),
    MO_0255("MO:0255", "转发提交过程中，连接断开"),
    MO_NNNN("MO:NNNN", "MO:NNNN 为对外提交过程中，上级网关的返回值，具体含义需上级网关解释");
    /**
     * 短信记录错误编码
     */
    private String returnCode;
    /**
     * 短信记录错误
     */
    private String returnText;
    SmsStatusEnum(String returnCode, String returnText) {
        this.returnCode = returnCode;
        this.returnText = returnText;
    }
    public static String getReturnText(String returnCode) {
        for (SmsStatusEnum value : SmsStatusEnum.values()) {
            if (value.returnCode.equals(returnCode)) {
                return value.returnText;
            }
        }
        return null;
    }

}
